﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

using Padelcenter.Common;
using Padelcenter.DataAccess;

namespace Padelcenter.BusinessLogic.Get
{
    public class GetPropiedad : IBusinessLogic
    {
        public GetPropiedad() { }

        public void Invoke()
        {
            Propiedad_Select oPropiedadSelect = new Propiedad_Select();
            oPropiedadSelect.Propiedad = this.Propiedad;

            this.Resultset = oPropiedadSelect.Get();
        }

        public List<Propiedad> PropiedadList()
        {
            this.Invoke();

            List<Propiedad> listaPropiedad = new List<Propiedad>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                Propiedad oPropiedad;
                
                foreach (DataRow r in dTable.Rows)
                {
                    oPropiedad = new Propiedad();
                    oPropiedad.IdPropiedad = Convert.ToInt32(r["idPropiedad"]);
                    oPropiedad.Descripcion = r["Descripcion"].ToString();
                    oPropiedad.Valor = r["Valor"].ToString();
                    oPropiedad.Activo = Convert.ToBoolean(r["Activo"]);

                    TipoPropiedad oTipoPropiedad = new TipoPropiedad();
                    oTipoPropiedad.IdTipoPropiedad = Convert.ToInt32(r["idTipoPropiedad"]);

                    GetTipoPropiedad oGetTipoPropiedad = new GetTipoPropiedad();
                    oGetTipoPropiedad.TipoPropiedad = oTipoPropiedad;

                    oPropiedad.TipoPropiedad = oGetTipoPropiedad.TipoPropiedadList()[0];

                    

                    listaPropiedad.Add(oPropiedad);
                }
            }

            return listaPropiedad;
        }

        private DataSet _resultset;
        private Propiedad _propiedad;

        public Propiedad Propiedad
        {
            get { return _propiedad; }
            set { _propiedad = value; }
        }

        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }

    public class GetPropiedadDescripcion : IBusinessLogic
    {
        public GetPropiedadDescripcion() { }

        public void Invoke()
        {
            PropiedadDescripcion_Select oPropiedadDescripcionSelect = new PropiedadDescripcion_Select();
            oPropiedadDescripcionSelect.PropiedadDescripcion = this.PropiedadDescripcion;

            this.Resultset = oPropiedadDescripcionSelect.Get();
        }

        public List<PropiedadDescripcion> PropiedadDescripcionList()
        {
            this.Invoke();

            List<PropiedadDescripcion> listaPropiedadDescripcion = new List<PropiedadDescripcion>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                PropiedadDescripcion oPropiedadDescripcion;

                foreach (DataRow r in dTable.Rows)
                {
                    oPropiedadDescripcion = new PropiedadDescripcion();
                    oPropiedadDescripcion.Propiedad.IdPropiedad = Convert.ToInt32(r["idPropiedad"]);
                    oPropiedadDescripcion.Descripcion = r["Descripcion"].ToString();
                    

                    Idioma oIdioma = new Idioma();
                    oIdioma.IdIdioma = Convert.ToInt32(r["idIdioma"]);

                    GetIdioma oGetIdioma = new GetIdioma();
                    oGetIdioma.Idioma = oIdioma;

                    oPropiedadDescripcion.Idioma = oGetIdioma.IdiomaList()[0];

                    listaPropiedadDescripcion.Add(oPropiedadDescripcion);
                }
            }

            return listaPropiedadDescripcion;
        }

        private DataSet _resultset;
        private PropiedadDescripcion _propiedadDescripcion;

        public PropiedadDescripcion PropiedadDescripcion
        {
            get { return _propiedadDescripcion; }
            set { _propiedadDescripcion = value; }
        }
        
        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }
}
